package com.dyj.goodlife.handler;

import com.dtflys.forest.annotation.*;
import com.dyj.common.config.AgentConfiguration;
import com.dyj.common.domain.DataAndExtraVo;
import com.dyj.common.domain.query.BaseQuery;
import com.dyj.common.interceptor.ClientTokenInterceptor;
import com.dyj.goodlife.domain.query.CreatePartnerOrderQuery;
import com.dyj.goodlife.domain.query.QueryPartnerOrderQuery;
import com.dyj.goodlife.domain.query.SaveCommissionQuery;
import com.dyj.goodlife.domain.vo.*;

/**
 * 通用接口->代运营
 */
public class PartnerHandler extends AbstractGoodLifeHandler{
    public PartnerHandler(AgentConfiguration agentConfiguration) {
        super(agentConfiguration);
    }

    /**
     * 通用接口->代运营->创建合作关系
     * @param body 创建合作关系请求值
     * @return
     */
    public DataAndExtraVo<CreatePartnerOrderVo> createPartnerOrder(CreatePartnerOrderQuery body) {
        baseQuery(body);
        return getPartnerClient().createPartnerOrder(body);
    }


    /**
     * 通用接口->代运营->合作列表获取
     * @param body 合作列表获取请求值
     * @return
     */
    public DataAndExtraVo<QueryPartnerOrderVo> queryPartnerOrder(QueryPartnerOrderQuery body) {
        baseQuery(body);
        return getPartnerClient().queryPartnerOrder(body);
    }

    /**
     * 通用接口->代运营->合作详情查询
     * @param orderId 订单id
     * @param withoutProductItems 是否不获取商品佣金 选填
     * @return
     */
    public DataAndExtraVo<GetPartnerOrderVo> getPartnerOrder(String orderId, String withoutProductItems) {
        return getPartnerClient().getPartnerOrder(baseQuery(), orderId, withoutProductItems);
    }

    /**
     * 通用接口->代运营->创建/修改佣金
     * @param body 创建/修改佣金请求值
     * @return
     */
    public DataAndExtraVo<SaveCommissionVo> saveCommission(SaveCommissionQuery body) {
        baseQuery(body);
        return getPartnerClient().saveCommission(body);
    }

    /**
     * 通用接口->代运营->佣金变更记录列表
     * @param orderId 订单id
     * @param page 页码，起始页为1，默认为1 选填
     * @param size 页面大小，最大50，默认50 选填
     * @return
     */
    public DataAndExtraVo<QueryCommissionRecordVo> queryCommissionRecord(String orderId, Integer page, Integer size) {
        return getPartnerClient().queryCommissionRecord(baseQuery(), orderId, page, size);
    }

    /**
     * 通用接口->代运营->佣金变更记录详情
     * @param orderId 订单id
     * @param recordId 佣金配置记录id
     * @return
     */
    public DataAndExtraVo<GetCommissionRecordVo> getCommissionRecord(String orderId,String recordId) {
        return getPartnerClient().getCommissionRecord(baseQuery(), orderId, recordId);
    }

    /**
     * 通用接口->代运营->商品佣金详情
     * @param orderId 订单id
     * @param page 页数，起始页为1，默认1 选填
     * @param size 每页大小，最大50条，默认50 选填
     * @return
     */
    public DataAndExtraVo<QueryProductCommissionVo> queryProductCommission(String orderId,Integer page, Integer size) {
        return getPartnerClient().queryProductCommission(baseQuery(), orderId, page, size);
    }
}
